package com.example.audiostreaming.interfaces;

import com.ximalaya.ting.android.opensdk.model.track.Track;
import com.ximalaya.ting.android.opensdk.player.service.XmPlayListControl;

import java.util.List;

public interface IPlayerViewCallback {

    /**
     * 开始播放
     */
    void onPlayStart();

    /**
     * 暂停播放
     */
    void onPlayPause();

    /**
     * 停止播放
     */
    void onPlayStop();

    /**
     * 播放错误
     */
    void onPlayError();

    /**
     * 播放上一首
     */
    void onPrePlay(Track track);

    /**
     * 播放下一首
     */
    void nextPlay(Track track);

    /**
     *更新播放模式并且修改UI
     */
    void onPlayModeChange(XmPlayListControl.PlayMode playMode);

    /**
     * 播放列表数据加载完成
     *
     * @param list 播放器列表数据
     */
    void onListLoaded(List<Track> list);

    /**
     * 进度条的改变
     *
     * @param currPos 当前进度
     * @param duration 总共时长
     */
    void onProgressChange(int currPos, int duration);

    /**
     * 广告正在加载
     */
    void onAdLoading();

    /**
     * 广告结束
     */
    void onAdFinished();

    /**
     * 更新当前节目UI
     * @param track
     */
    void onTrackUpdate(Track track, int playIndex);

    /**
     * 通知UI更新播放列表的顺序文字和图标
     * @param isReverse
     */
    void updateListOrder(boolean isReverse);

}
